package god;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class J23SungJukDAOImpl implements J23SungJukDAO {

	private static String DRV = "oracle.jdbc.driver.OracleDriver";
	private static String URL = "jdbc:oracle:thin:@112.216.253.124:1521:xe";
	private static String USR = "godraines";
	private static String PWD = "godraines";
	private static String insertSQL = " insert into SungJuk(sjno, name, kor, eng, mat, tot, avgs, grd) values(sjno.nextval,?,?,?,?,?,?,?) ";
	private static String readSQL = "";
	private static String readOneSQL = "";
	private static String modifySQL = "";
	private static String removeSQL = "";
	
	@Override
	public void insertSungJuk(J23SungJukVO sj) {
		Connection conn = null;
		PreparedStatement pstmt = null;
		
		try {
			conn = makeConnection();
		} catch (Exception ex) {
			ex.printStackTrace();
		} finally {
			closeConnection(conn, pstmt, null);									// rs를 사용하지 않아 값이 없기 때문에 null로 넣음, rs = null이면 닫을게 없기 때문에 닫지 않음
		}
	}

	// 데이터베이스 접속 생성기
	// makeConnection 에서 발생하는 예외는 makeConnection 가 직접 처리하지 않고
	// makeConnection을 호출한 상위 메서드가 대신 처리하게 함.
	// 따라서 try-catch-finally 구문을 작성하지 않아도 됨
	// throws 문을 사용하면 예외를 다른곳으로 전가
	private Connection makeConnection() throws Exception {
		Connection conn = null;
		Class.forName(DRV);
		conn = DriverManager.getConnection(URL, USR, PWD);
		return conn;
	}
	
	// 데이터베이스 접속 종료
	private void closeConnection(Connection conn, PreparedStatement pstmt, ResultSet rs) {
		if (rs != null) try { rs.close(); } catch (Exception ex) {}
		if (pstmt != null) try { pstmt.close(); } catch (Exception ex) {}
		if (conn != null) try { conn.close(); } catch (Exception ex) {}
	}
}
